package com.blog.cmrpersonalblog.dto.sensitiveword.requset;

import lombok.Data;

import jakarta.validation.constraints.*;
import java.util.List;

/**
 * 敏感词创建请求DTO
 */
@Data
public class SensitiveWordCreateRequest {

    /**
     * 敏感词内容
     */
    @NotBlank(message = "敏感词内容不能为空")
    @Size(max = 100, message = "敏感词长度不能超过100个字符")
    private String word;

    /**
     * 敏感词类型
     */
    @NotBlank(message = "敏感词类型不能为空")
    private String type;

    /**
     * 严重程度（1-5）
     */
    @NotNull(message = "严重程度不能为空")
    @Min(value = 1, message = "严重程度最小为1")
    @Max(value = 5, message = "严重程度最大为5")
    private Integer severity;

    /**
     * 过滤模式：REPLACE-替换为***，BLOCK-直接拦截
     */
    @NotBlank(message = "过滤模式不能为空")
    @Pattern(regexp = "^(REPLACE|BLOCK)$", message = "过滤模式只能是REPLACE或BLOCK")
    private String filterMode;

    /**
     * 替换文本（当filter_mode为REPLACE时使用）
     */
    @Size(max = 50, message = "替换文本长度不能超过50个字符")
    private String replacement;

    /**
     * 描述信息
     */
    @Size(max = 500, message = "描述信息长度不能超过500个字符")
    private String description;

    /**
     * 分类标签
     */
    private List<String> tags;

    /**
     * 是否启用 0-禁用 1-启用
     */
    private Integer status = 1;
}